Currently there are a large number of smart phone users around the world. Many of these smart phones are provided with high computing power, video streaming capabilities, high quality image capture capabilities and other processing capabilities. This presents an unprecedented opportunity for developing applications based on these capabilities, especially for sensing and imaging applications.